package net.chathu.airgw.packets.gw.clientpackets 
{
	import net.chathu.airgw.model.DisturbState;
	import net.chathu.airgw.model.User;
	import net.chathu.airgw.packets.gw.serverpackets.EchoPacket;
	import net.chathu.airgw.util.ByteArrayUtil;
	/**
	 * ...
	 * @author ze
	 */
	public class CMDGWSetDisturb extends IRCReceivablePacket 
	{
		
		public function CMDGWSetDisturb() 
		{
			
		}
		
		override public function execute():void 
		{
			if (data.length >= 2 && sessionData.chatData.userId)
			{
				var newState:int = parseInt(data[1]);
				var user:User = User(sessionData.chatData.users.getUser(sessionData.chatData.userId));
				var disturbState:DisturbState = DisturbState.getStateByCode(newState);
				
				//if (newState >= 0 && newState <= 3 && user)
				if(disturbState) //ha valid allapotot adott meg:
				{
					sendToChat(ByteArrayUtil.convertParams(["m","userinfo","disturb",newState]));
					user.disturb = newState;
					sendToClient(new EchoPacket(sessionData.nick, "Állapotod: " + disturbState.description));
				} else {
					disturbState = DisturbState.getStateByCode(user.disturb);
					if(user && disturbState) {
						sendToClient(new EchoPacket(sessionData.nick, "Jelenlegi állapotod: " + disturbState.description));
					}
				}
			}
		}
		
		public static function getShortUsageDescription():String {
			return "('Ne zavarj') állapotváltás ";
		}
		
		public static function getUsageDescription():String {
			return "Példa:\n" +
				"/gwsetdisturb 0\n\n" +
				"Eredmény:\n\n" + 
				"Állapotod: Ne zavarj!\n\n" +
				"A /gwsetdisturb parancs utáni érték lehet -1, 0, 1, 2, 3\n" +
				"Attól függően, hogy melyik állapotot választjuk... különböző válaszokat adhat.";
		}
	}

}